package org.springblade.app.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import org.springblade.core.mp.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.time.LocalDateTime;


/**
 * 应用成员表 实体类
 *
 * @author Chill
 */
@Data
@TableName("shy_app_user")
@ApiModel(value = "AppUser对象", description = "应用成员表")
public class AppUserEntity implements Serializable {

	private static final long serialVersionUID = 1L;


	@JsonSerialize(
		using = ToStringSerializer.class
	)
	@ApiModelProperty("主键id")
	@TableId(
		value = "id",
		type = IdType.ASSIGN_ID
	)
	private Long id;

	/**
	 * 应用编号
	 */
	@ApiModelProperty(value = "应用编号")
	private String appId;
	/**
	 * 关联类型，1用户，2部门
	 */
	@ApiModelProperty(value = "关联类型，1用户，2部门")
	private Integer linkType;
	/**
	 * 关联id
	 */
	@ApiModelProperty(value = "关联id")
	@JsonSerialize(
		using = ToStringSerializer.class
	)
	private Long linkId;
	/**
	 * 人员类型，0普通用户，1管理员，2拥有者
	 */
	@ApiModelProperty(value = "人员类型，0普通用户，1管理员，2拥有者")
	private Integer type;

	@DateTimeFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@JsonFormat(
		pattern = "yyyy-MM-dd HH:mm:ss"
	)
	@ApiModelProperty("创建时间")
	private Date createTime;

	/**
	 * 用户在子应用中的ID
	 */
	private Long subUser;

}
